From 106aa50d4e5b336f7dd2d5cf4d882e692d205e91 Mon Sep 17 00:00:00 2001
From: Vincent Bernat <vincent@bernat.im>
Date: Sat, 18 Jun 2016 22:18:41 +0200
Subject: [PATCH] build: make generation of atom-glue compatible with older gcc
 versions

With old versions, cpp doesn't accept several files as input. See #186.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
---
 src/lib/Makefile.am | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 250e32a..2a5cdb3 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -20,8 +20,9 @@ nodist_liblldpctl_la_SOURCES = atom-glue.c
 liblldpctl_la_LIBADD  = $(top_builddir)/src/libcommon-daemon-lib.la libfixedpoint.la
 
 atom-glue.c: $(ATOM_FILES) Makefile
-	$(AM_V_GEN)($(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-		$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ATOM_FILES:%=$(srcdir)/%) | \
+	$(AM_V_GEN)(for f in $(ATOM_FILES:%=$(srcdir)/%); do \
+		$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+		$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $$f; done | \
 		$(SED) -n 's+^void init_atom_builder_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \
 		sort | \
 		$(AWK) '{ atoms[$$2] = 1 } \
@@ -30,8 +31,9 @@ atom-glue.c: $(ATOM_FILES) Makefile
                                print " static int init = 0; if (init) return; init++;"; \
 			       for (atom in atoms) { print " init_atom_builder_"atom"();" } \
 			       print "}"; }' && \
+		for f in $(ATOM_FILES:%=$(srcdir)/%); do \
 		$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-		$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ATOM_FILES:%=$(srcdir)/%) | \
+		$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $$f; done | \
 		$(SED) -n 's+^void init_atom_map_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \
 		sort -n | \
 		$(AWK) '{ atoms[$$2] = 1 } \
-- 
2.9.0

